//
//  TimeTools.h
//  SmartCommunity
//
//  Created by Mac on 15/7/26.
//  Copyright (c) 2015年 smartcommunity. All rights reserved.
//

#import <Foundation/Foundation.h>

@class EKEventStore;

@interface TimeTools : NSObject

#pragma mark 当前时间，年月日时分秒
+(NSString*)getCurrentTimeYMDHMS;

// 当前时间 年月日
+(NSString*)getCurrentTimeYMD;

/**
 *  格式化nsdate 为月日
 *
 *  @param date
 *
 *  @return 月日
 */
+(NSString *)getMonthDayWithDate:(NSDate *)date;

/**
 *  格式化nsdate 为时分
 *
 *  @param date
 *
 *  @return 时分
 */
+(NSString *)getHourMinWithDate:(NSDate *)date;

/**
 *  格式化nsdate 为年月日
 *
 *  @param date
 *
 *  @return 年月日
 */
+(NSString *)getYearMonthDayWithDate:(NSDate *)date;

/**
 *  格式化date为周几
 *
 *  @param date
 *
 *  @return
 */
+(NSString *)getWeekWithDate:(NSDate *)date;

/**
 *  时间string转date
 *
 *  @param str yyyy-MM-dd
 *
 *  @return
 */
+(NSDate *)getDateWithString:(NSString*)str;

/**
 *  +代表将来时间，－代表过去时间
 *
 *  @param year
 *  @param month
 *  @param day
 *  @param hour
 *  @param minute
 *  @param second
 *  @param date
 *
 *  @return nsdate
 */
+(NSDate*)getBeforeYear:(int)year month:(int)month day:(int)day hour:(int)hour minute:(int)minute second:(int)second withDate:(NSDate*)date;

/**
 *  得到nsdate之前或之后多少天的时间
 *
 *  @param days
 *  @param date
 *
 *  @return
 */
+(NSString *)getBefroeDay:(int)days andString:(NSString *)dateStr;

/**
 *  +代表将来时间，－代表过去时间，天为单位
 *
 *  @param days
 *  @param date
 *
 *  @return nadate
 */
+(NSDate *)getDateBefroeDay:(int)days andDate:(NSDate *)date;

//根据2015-01-20格式得到星期
+(NSString *)getWeekString:(NSString *)str;

//根据2015-01-20格式得到01-20
+(NSString *)getMonthDaywithString:(NSString *)str;

/**
 *  date转年月日时分
 *
 *  @param date
 *
 *  @return
 */
+(NSString *)getYearMonthDayHourMinWithDate:(NSDate *)date;

/**
 *  时间间隔,单位秒
 *
 *  @param dateStr1
 *  @param dateStr2
 *
 *  @return
 */
+ (int)getIntervalSecond:(NSString*)dateStr1 time2:(NSString*)dateStr2;

//时间戳转月日
+(NSString *)getMonthDayWithInterval:(NSString *)interval;

/**
 *  毫秒转中文月日
 *
 *  @param interval
 *
 *  @return
 */
+(NSString *)getMonthDayChinaWithIntervalUp:(NSString *)interval;

/**
 *   毫秒转时间－－年月日时分
 *
 *  @param interval 毫秒
 *
 *  @return
 */
+(NSString *)getYearMonthDayHourMinWithInterval:(NSString *)interval;

/**
 *  long 毫秒转时间－－年月日时分
 *
 *  @param interval 毫秒
 *
 *  @return
 */
+(NSString *)getYearMonthDayHourMinWithLongInterval:(long)interval;

/**
 *  long 毫秒转时间－－年月日
 *
 *  @param interval 毫秒
 *
 *  @return
 */
+(NSString *)getYearMonthDayWithLongInterval:(long)interval;

/**
 *  时间比较  firstStr早于secondestr返回为NO
 *
 *  @param firstStr
 *  @param secondStr
 *
 *  @return
 */
+(BOOL)firstDateStr:(NSString *)firstStr compareSecondStr:(NSString *)secondStr;

//返回年月时间
+(NSString*)getYearMonthwithString:(NSString *)str;

/**
 *  返回传入formatterStr格式时间
 *
 *  @param date
 *  @param formatterStr yyyy-MM-dd yyyy-MM
 *
 *  @return formatterStr格式时间
 */
+(NSString*)getTimeDate:(NSDate*)date withFormatter:(NSString*)formatterStr;

/**
 *  返回传入formatterStr格式时间
 *
 *  @param timestr
 *  @param formatterStr yyyy-MM-dd yyyy-MM
 *
 *  @return formatterStr格式时间
 */
+(NSString*)getTimeString:(NSString*)timeStr withFormatter:(NSString*)formatterStr;
/**
 *  年月日
 *
 *  @param timeStr
 *
 *  @return
 */
+ (NSString*)getYearMonthDayWithTimeString:(NSString*)timeStr;
/**
 *  字符串 转 yyyy-MM-dd
 *
 *  @param timeStr
 *
 *  @return
 */
+ (NSString *)getDateWithStringNew:(NSString*)str;

//date转中文月日时分
+(NSString *)getMonthDayHourMinWithDate:(NSDate*)date;

//获取当前时间的日
+(NSString*)getCurrentTimeDay;

//获取当前时间的月份与星期几
+(NSString*)getCurrentTimeMonthAndWeekDay;

/**
 根据字符串日期，返回距今时长的人性化描述字符串
 @param dateStr 字符串日期
 */
+(NSString*)getTimeGapHumanDescForDate:(NSString*)dateStr;

/**
 添加日历事件
 @param dateArr 闹铃数组
 @param title NSString闹铃标题
 */
+(void)addClockAlert:(NSArray*)dateArr forTitle:(NSString*)title intoDB:(EKEventStore*)eventDB;

/**
 添加闹钟
 @param date NSDate闹铃日期
 @param title NSString闹铃标题
 */
+(void)addReminderNotify:(NSDate *)date forTitle:(NSString *)title intoDB:(EKEventStore*)eventDB;

/**
 清除所有已设置的服药提醒闹钟
 */
+(void)removeAllMedicineAlertInDB:(EKEventStore*)eventDB;

/**
 格林威治时间字符串转换
 */
+(NSDate*)getDateFromUTC:(NSString*)timeOfUTC;

@end
